<?php
/**
 * 个性化菜单 管理
 *
 * @author    Alex Xun xunzhibin@expert.com
 * @version   1.0
 * @copyright (C) 2018 Jnexpert Ltd. All rights reserved
 * @file      menu\controller\v1\Personalise.php
 */

namespace app\menu\controller\v1;

use controller\BasicWechat;

/**
 * 个性化菜单 控制器类
 *
 * @author Alex Xun xunzhibin@jnexpert.com
 * @package controller
 */
class Personalise extends BasicWechat
{
    /**
     * 公众号 第三方库 初始化
     *
     * 根据具体所需服务，实例不同的接口类
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    protected function initVendor()
    {
        // 实例化 第三方库
        $this->wechat = new \WeChat\Menu($this->config);
    }

    /**
     * 创建
     *
     * 创建个性化自定义菜单，默认菜单不在此
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function create()
    {
        /**
        * $this->data = [
        *      'button' => [
        *          [
        *                  'type' => '动作类型',
        *                  'name' => '标题',
        *                  ......
        *          ],
        *          ......
        *      ],
        *      'matchrule' => [
        *          'tag_id' => '用户标签ID',
        *          ......
        *      ]
        * ]
        */

        // 创建
        $result = $this->wechat->addConditional($this->data);

        // 响应
        return $this->response($result, true);
    }

    /**
     * 删除
     *
     * 通过menuid，删除相对应的个性化自定义菜单
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function delete()
    {
        // 删除
        $result = $this->wechat->delConditional($this->data['menuid']);

        // 响应
        return $this->response($result);
    }

    /**
     * 匹配结果
     *
     * 通过用户openid，可以测试当前此用户的菜单配置
     *
     * @author Alex Xun xunzhibin@jnexpert.com
     */
    public function match()
    {
        // 查询
        $result = $this->wechat->tryConditional($this->data['openid']);

        // 响应
        return $this->response($result, true);
    }
}
